$(function() {
    toastr.options = messageOpts;

    $("#usersTable").bootstrapTable('destroy').bootstrapTable({
        url : "/user/getAdmins",
        dataType : "json",
        method : 'get',
        striped: true,  //行间隔色
        cache : false,  //禁用缓存
        pageNumber: 1,  //初始化加载第一页
        pagination: true,//是否分页
        sidePagination: "client",//前端分页
        pageSize: 5,//单页记录数
        pageList: [5, 10, 15],//可选择单页记录数
        clickToSelect : true,
        theadClasses: "thead-blue",
        queryParams: function (params) {
            //向服务器传递的参数
            return {
                name : $("#search_name").val(),
            };
        },
        responseHandler : function(res) {
            return res.data;
        },
        columns : [
            {
                title : "用户编号",
                field : "userId",
                sortable : true,
                align : "center",
            },
            {
                title : "用户姓名",
                field : "account",
                sortable : true,
                align : "center",
            },
            {
                title : "用户角色",
                field : "roleName",
                sortable : true,
                align : "center",
            },
            {
                title : "注册时间",
                field : "register_time",
                sortable : true,
                align : "center",
            },
            {
                title : "状态",
                field : "status",
                sortable : true,
                align : "center",
                formatter : function(object, row, index) {
                    if (object === 'Y') {
                        return '有效';
                    }else if(object === 'S') {
                        return '注销';
                    }

                },
            },
            {
                title : "操作",
                field : "id",
                formatter : operation,
                align : "center",
            }
        ]
    });

    function operation(value,row,index) {
        htm = "<button type=\"button\" class=\"btn btn-primary\" style='width: 40px;' data-target=\"#updateModel\" data-toggle=\"modal\"><span class=\"glyphicon glyphicon-pencil\"></span></button> "
            + "<button type=\"button\" class=\"btn btn-danger\" style='width: 40px;' data-target=\"#deleteModel\" data-toggle=\"modal\"><span class=\"glyphicon glyphicon-trash\"></span></button> ";
        return htm;
    };

    $("#search").click(function() {
        $("#usersTable").bootstrapTable("refresh");
        $("#search_name").val("");
    });

    $("#insertBtn").click(function() {
        if ($("#insertUserName").val() === null || $("#insertPassword").val() === null){
            toastr.warning('请填写相关信息');
            return;
        }
        $.ajax({
            url : "/user/register",
            type : "post",
            data : {
                account: $("#insertUserName").val(),
                password: $("#insertPassword").val(),
                roleId: $("#insertRoleId").val(),
            },
            dataType : "json",
            success : function(data) {
                if (data.state === 200) {
                    toastr.success('添加成功');
                    $("#insertUserName").val("");
                    $("#insertPassword").val("");
                    $("#insertModel").modal('hide');
                    $("#usersTable").bootstrapTable("refresh",{
                        url : "/user/getAdmins",
                    });
                }else {
                    toastr.error(data.message);
                }
            }
        })
    });

    var userId;
    $("#deleteModel").on("show.bs.modal",function (event){
        var thisBtn = $(event.relatedTarget);
        userId = thisBtn.closest('tr').find('td').eq(0).text();
        roleId = thisBtn.closest('tr').find('td').eq(2).text();
    });

    $("#deleteBtn").click(function() {
        $.ajax({
            url : "/user/deleteUser",
            type : "post",
            data: {
                userId : userId,
            },
            dataType : "json",
            success : function(data){
                if (data.state === 200) {
                    toastr.success('删除成功');
                    $("#deleteModel").modal("hide");
                    $("#usersTable").bootstrapTable("refresh");
                }else {
                    toastr.error(data.message);
                }
            }
        })
    })

    var oldRoleId;
    $("#updateModel").on("show.bs.modal",function (event){
        var thisBtn = $(event.relatedTarget);
        var id = thisBtn.closest('tr').find('td').eq(0).text();
        var name = thisBtn.closest('tr').find('td').eq(1).text();
        $.ajax({
            url : "/user/getAdmins",
            type : "post",
            data : {
                name : name,
            },
            dataType : "json",
            success : function(res) {
                if (res.state === 200) {
                    oldRoleId = res.data[0].roleId;
                    $("#updateRoleId").val(oldRoleId);
                }else {
                    toastr.error(data.message);
                }
            }
        })
        $("#updateUserId").val(id);
        $("#updateUserName").val(name);
    });

    $("#updateBtn").click(function() {
        oldRoleId = oldRoleId == '-' ? 0 :oldRoleId;
        if($("#updateRoleId").val() === oldRoleId) {
            toastr.warning("请修改数据后再提交！");
            return;
         }
        if($("#updateRoleId").val() === null) {
            toastr.warning("请修改数据后再提交！");
            return;
        }

        $.ajax({
            url : "/user/updateUser",
            type : "post",
            data : {
                userId : $("#updateUserId").val(),
                oldRoleId : oldRoleId,
                newRoleId : $("#updateRoleId").val(),
            },
            dataType : "json",
            success : function(data) {
                $("#usersTable").bootstrapTable("refresh");
                $("#updateModel").modal('hide');
                if (data.state === 200) {
                    toastr.success("修改成功");
                }else {
                    toastr.error(data.message);
                }
            }
        })
    });
})
